System and method for activity monitoring and reporting in a computer network

ABSTRACT

A system for monitoring user activity in an instant messaging session on a computer network periodically sends an activity message to other participants in the instant messaging session if the user has actively entered data during a first predetermined time interval. The system periodically sends a new activity message at intervals corresponding to the first predetermined time interval so long as the user is actively entering data during each time interval. If the user has not entered data during the first predetermined time interval, the system will not send an activity message. Other participants in the instant messaging session receive the activity message and generate an activity indicator on their respective displays. The computer receiving the activity message displays an activity indicator on the computer display in response to receipt of an activity message and starts a timer to measure a second predetermined time interval. If another activity message is not received within the second predetermined time interval, the activity indicator is deleted from the display.

TECHNICAL FIELD

The present invention is related generally to computer networks and,more particularly, to a system and method for monitoring user activityand reporting the same in a computer network.

BACKGROUND OF THE INVENTION

Computer networks, such as the Internet, are extensively used forstorage and retrieval of a vast reservoir of information.Person-to-person communication, in the form of electronic mail (e-mail),has also become widely accepted as a replacement for conventional mailand facsimile. Any individual who has access to the Internet canestablish an e-mail account and communicate with other individuals onthe Internet.

A new form of e-mail communication, known as instant messaging, isgaining popularity among users of the Internet. As shown in a recentpopular movie, “You've Got Mail,” two individuals can engage in anongoing electronic communication without the need for entering themessage recipient's e-mail address for each individual transmission. Theadvantage of instant messaging is that two or more individuals mayengage in an ongoing electronic “chat” by simply typing the message onthe keyboard and pressing the “Enter” button on the computer keyboard orby clicking on a “Send” icon on the computer display screen.

Unlike telephonic communication, when participants know that a person isspeaking, participants in an instant messaging session do not know thatsomebody is preparing a message for transmission. Without a cue that theother person is transmitting information, it is difficult to have asmooth conversational flow. One mechanism that addresses this problem isemployed by a UNIX “talk” program, which performs acharacter-by-character transmission of an instant message. That is, eachtime individual types of a single character on the computer keyboard,that character is transmitted to all other participants in the instantmessaging session. Because other participants are essentially watchingthe person type, there are clear cues that a user is “talking.”

However, this approach has several limitations. First,character-by-character transmission greatly increases the flow ofnetwork traffic because each character requires one or more data packetsto be sent to each participant in the instant messaging session. Inaddition, many users do not like to be “watched” as they type, as theirtyping errors and incomplete thoughts are transmitted before they can becorrected. Finally, message recipients are often distracted by watchingthe flickering screen in which characters appear one time as a completemessage is formed. Therefore, it can be appreciated that there is asignificant need for a system and method that will provide the desirednotification of user activity in a computer network. The presentinvention provides this, and other advantages, as will be apparent fromthe following detailed description and accompanying figures.

SUMMARY OF THE INVENTION

The present invention is embodied in a system and method for detectinguser operation of a user input device and providing an activitynotification to other computers in a computer network. This isparticularly useful in an instant messaging session where two or moreparticipants may be preparing messages for other participants in theinstant messaging session. The system comprises a user input device,such as a keyboard, microphone, mouse, or the like, and an activitymonitor to detect user activation of the user input device. The activitymonitor will generate a signal indicative of user activation of theinput device. A timer measures a first predetermined time interval and,if user activity is detected within the first predetermined timeinterval, a message processor generates an activity message at the endof the first predetermined time interval and transmits the activitymessage to at least one recipient with whom the user is communicatingvia the computer network.

When the user initially activates the user input device to begincomposing a message, the activity message processor can immediately sendan activity message without waiting for the expiration of the firstpredetermined time interval. So long as user activity continues to occurin each subsequent first predetermined time interval, an activitymessage is sent to the at least one recipient at the end of each timeinterval. If no user activity occurs during a particular time interval,the activity message processor will not send an activity message at theend of that time interval. If the user subsequently begins activity onthe user input device again, the activity message processor can send animmediate activity message or, alternatively, wait for the expiration ofthe first predetermined time interval to send the activity message.

The recipient receives and processes the activity message to therebygenerate an activity indicator, which may be conveniently displayed onthe computer display. The activity indicator may be in the form of atextual status message, a graphical icon, or a combination of the two.In this manner, the user of the recipient machine is aware that anotherindividual is actively preparing a message for transmission via thecomputer network.

Since the activity message is only transmitted when a user is activelyoperating the user input device, the recipient computer must have a wayof determining when some other user is no longer active. The recipientcomputer uses a timer to measure a second predetermined time interval.In one embodiment, the second predetermined time interval is longer thanthe first predetermined time interval. If an activity message is notreceived within the second predetermined time interval, the recipientmachine can delete the activity indicator from the display, therebyproviding the user of the recipient computer with an indication that theother participant is no longer actively entering data on their userinput device. In this manner, the recipient machine does not rely on anystatus message indicating nonactivity, but simply presumes that anonactive status is appropriate if a subsequent activity message is notreceived. This technique also minimizes processing of activity messagesby the recipient computer since only the first activity message needresult in a display of the activity indicator. If subsequent activitymessages are received within the second predetermined time interval, therecipient computer does not need to alter the display to indicate thecontinued active status. If the activity message is not received withinthe second predetermined time interval, the recipient computer candelete the status indicator from the display. Alternatively, the messagesender can define the second predetermined time interval by sending datawithin the text message and/or the activity message. Thisprogrammability allows the sender to alter the predetermined timeperiod.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a computer system that includes components toimplement the system of the present invention.

FIG. 2 is a functional block diagram of computer system components usedto implement the system of the present invention.

FIG. 3 is a functional block diagram illustrating the operation of thesystem of FIG. 2 for multiple participants in instant messaging session.

FIGS. 4A and 4B together form a flowchart illustrating the operation ofthe system to monitor user input and to generate and transmit a useractivity message.

FIG. 5 is a flowchart illustrating the operation of the system toreceive and process user activity messages.

DETAILED DESCRIPTION OF THE INVENTION

FIG. 1 and the following discussion are intended to provide a brief,general description of a suitable computing environment in which theinvention may be implemented. Although not required, the invention willbe described in the general context of computer-executable instructions,such as program modules, being executed by a personal computer.Generally, program modules include routines, programs, objects,components, data structures, etc. that perform particular tasks orimplement particular abstract data types. Moreover, those skilled in theart will appreciate that the invention may be practiced with othercomputer system configurations, including hand-held devices,multiprocessor systems, microprocessor-based or programmable consumerelectronics, network PCs, minicomputers, mainframe computers, and thelike. The invention may also be practiced in distributed computingenvironments where tasks are performed by remote processing devices thatare linked through a communications network. In a distributed computingenvironment, program modules may be located in both local and remotememory storage devices.

With reference to FIG. 1, an exemplary system for implementing theinvention includes a general purpose computing device in the form of aconventional personal computer 20, including a central processing unit(CPU) 21, a system memory 22, and a system bus 23 that couples varioussystem components including the system memory to the processing unit 21.The system bus 23 may be any of several types of bus structuresincluding a memory bus or memory controller, a peripheral bus, and alocal bus using any of a variety of bus architectures. The system memory22 includes read only memory (ROM) 24 and random access memory (RAM) 25.A basic input/output system 26 (BIOS), containing the basic routinesthat helps to transfer information between elements within the personalcomputer 20, such as during start-up, may be stored in ROM 24.

The personal computer 20 further includes input/output devices 27, suchas a hard disk drive 28 for reading from and writing to a hard disk, notshown, a magnetic disk drive 29 for reading from or writing to aremovable magnetic disk 30, and an optical disk drive 31 for readingfrom or writing to a removable optical disk 32 such as a CD ROM or otheroptical media. The hard disk drive 28, magnetic disk drive 29, andoptical disk drive 31 are connected to the system bus 23 by a hard diskdrive interface 33, a magnetic disk drive interface 34, and an opticaldrive interface 35, respectively. The drives and their associatedcomputer-readable media provide nonvolatile storage of computer readableinstructions, data structures, program modules and other data for thepersonal computer 20. Although the exemplary environment describedherein employs a hard disk, a removable magnetic disk 30 and a removableoptical disk 32, it should be appreciated by those skilled in the artthat other types of computer readable media which can store data that isaccessible by a computer, such as magnetic cassettes, flash memorycards, digital video disks, Bernoulli cartridges, random access memories(RAMs), read only memories (ROM), and the like, may also be used in theexemplary operating environment. Other I/O devices 27, such as a display36, keyboard 37, mouse 38, sound board 39 may be included in thepersonal computer 20 and operate in a known manner. Still other I/Odevices 27, such as a joystick, speakers and the like may also beincluded in the personal computer 20. For the sake of brevity, thesecomponents are not illustrated in FIG. 1.

The personal computer 20 may also include a network interface 40 topermit operation in a networked environment using logical connections toone or more remote computers, such as a remote computer 41. The remotecomputer 41 may be another personal computer, a server, a router, anetwork PC, a peer device or other common network node, and typicallyincludes many or all of the elements described above relative to thepersonal computer 20, although only a memory storage device 42 has beenillustrated in FIG. 1. The logical connections depicted in FIG. 1include a local area network (LAN) 43 and a wide area network (WAN) 44.Such networking environments are commonplace in offices, enterprise-widecomputer networks, intranets and the Internet.

When used in a LAN networking environment, the personal computer 20 isconnected to the LAN 43 through the network interface 40. When used in aWAN networking environment, the personal computer 20 typically includesa modem 45 or other means for establishing communications over the WAN44, such as the Internet. The modem 45, which may be internal orexternal, permits communication with remote computers 46-50. In anetworked environment, program modules depicted relative to the personalcomputer 20, or portions thereof, may be stored in the remote memorystorage device 42 via the LAN 51 or stored in a remote memory storagedevice 52 via the WAN 44. It will be appreciated that the networkconnections shown are exemplary and other means of establishing acommunications link between the computers may be used.

The present invention is embodied in the system 100 illustrated in thefunctional block diagram of FIG. 2. For the sake of clarity, somecomponents illustrated in FIG. 1 are not shown in FIG. 2 because they donot relate directly to the implementation of the system 100. Somecomponents illustrated in FIG. 2 are actually implemented by a series ofinstructions stored in the system memory 22 and executed by the CPU 21.However, for the sake of clarity, each of these components isillustrated as a separate block into block diagram because each performsa separate function.

In addition to the CPU 21 and the system memory 22, the system 100includes the display 36 and network interface 40, which are all coupledtogether by the system bus 23. The system 100 can use the modem 45 (seeFIG. 1) in place of or in addition to the network interface 40. However,for the sake of brevity, the present description will refer to thenetwork interface 40. In addition to these components, the system 100includes a user input device 102, such as the keyboard 37. However, aswill be described below, the user input device 102 may take other forms,such as the mouse 38 or an audio input device 122 (see FIG. 3) coupledto the sound board 39 and speech recognition software program.

A user activity monitor 104 detects user operation of the user inputdevice 102 and generates signals in response thereto. A timer 106operates in conjunction with the user activity monitor 104 to measure atime period since the last user activity. A typical computer 20 (seeFIG. 1) includes several timers, which may be part of the CPU 21. Theuse of one or more timers 106 in the system 100 is described in greaterdetail below. The programming instructions to operate the timers 106 tomeasure one or more predetermined time periods is well known and neednot be described herein.

A message processor 108 forms one or more data packets for transmissionon the LAN 43 (see FIG. 1) or WAN 44 using the network interface 40. Themessage processor 108 may send user-entered data, such as a messagetyped in by the user on the keyboard 37. The formation of data packetsto send text messages over a computer network is within the knowledge ofone skilled in the art in need not be described in greater detailherein. In addition, the message processor 108 transmits user activitymessages via the network interface 39. The formation of activitymessages and content thereof will be described in greater detail below.

The message processor 108 also processes data packets received from aremote computing platform. For example, the message processor 108receives and processes data packets received from another participant inan instant messaging session, including text messages and activitymessages. The operation of the message processor 108 to receive andprocess text messages is known to those skilled in the art and need notbe described in detail herein. The operation of the system 100 forreceived activity messages will be described in greater detail below.

The system 100 monitors user activity during the instant messagingsession and sends periodic activity messages to other participants inthe instant messaging session. In one embodiment, the timer 106 measuresa first predetermined time period and, if user activity of the userinput device 102 occurred within the first predetermined time period,the message processor 108 automatically generates an activity messageand transmits it to the other participants in the instant messagingsession. Thus, each participant in the instant messaging session isaware that another participant is actively communicating. For example,the timer 106 can measure five second intervals. During each five secondinterval, the user activity monitor 104 monitors the user input device102 and detects user at operation or activation thereof. If useractivity occurred within the five second interval, the message processor108 will generate an activity message and transmit it over the networkinterface 40 to each participant in the instant messaging session.

The user activity monitor 104 is typically a series of computerinstructions stored in the system memory 22 and executed by the CPU 21.One example of a user activity monitor is a computer screen saver, whichblanks or otherwise alters data for the display 36 if the user does notactivate the keyboard 37 or the mouse 38 for some predetermined delaytime, such as, by way of example, ten minutes. Each time the screensaver program detects user activity, it resets the timer. The primarydifference between the user activity monitor 104 and a screen saverprogram is it that the time period measured by the timer 106 isgenerally much shorter than the typical screen saver delay time. Screensaver programs form no part of the present invention, but are describedas an example of a technique for monitoring keyboard activity. The useractivity monitor 104 may be implemented using similar monitoringtechniques, but for a shorter time interval, such as five seconds.However, the user activity monitor 104 does not alter data for thedisplay 36 if no activity occurs within the five second time interval.Rather, the message processor 108 does nothing if no activity occurswithin the five second time interval and generates an activity messageif activity does occur within the five second time interval. The useractivity monitor 104 may also be implemented using hardware interruptswherein the user activity monitor detects the generation of interruptsfrom I/O devices, such as the keyboard 37 or mouse 38. Similarly, theuser activity monitor 104 can monitor user activity on input devices,such as a joystick (not shown) or the audio input device 122 (see FIG.3) of a multi-media board, such as the sound board 39.

As noted above, the message processor 108 will generate and transmit anactivity message if user activity was detected during the last timeinterval measured by the timer 106. If no user activity was detectedduring the last time interval, the message processor 108 will notgenerate an activity message. Thus, the system 100 does not createexcessive network traffic by transmitting a data packet corresponding toeach character typed by the user, but only periodically sends anactivity message indicating that the user is actively operating userinput device 102.

The user enters data with the user input device 102 (e.g., the keyboard37) to form a message for transmission. The data entered by the user isstored in a buffer, which is typically part of the memory 22. The usercan terminate data entry and cause the message processor 108 to formdata packets and transmit the message by activating a selected controlon the user input device 102. For example, if user input device is thekeyboard 37, the user types in the desired message and presses the“Enter” key on the keyboard. Alternatively, the user may terminate themessage input mode and transmit the text message by manipulating themouse 38 to position a cursor (not shown) on a “Send” button on thedisplay 36.

Once a text message has been transmitted, the message processor 108 willnot transmit additional activity messages until the user once againactivates the user input device 102 to generate another text message. Ifthe data entered by the user is the start of a text message, the messageprocessor 108 can generate and transmit an activity message immediatelyrather than wait for the time interval measured by the timer 106 toexpire. For example, the message processor 108 can generate an activitymessage the first time the user activates the keyboard 37 to type amessage. Thus, the system can provide an immediate activity message whenthe user begins to enter a message (via the user input device 102) andwill subsequently send a periodic activity messages at the end of timeinterval measured by the timer 106 so long as user activity occurredduring the last time interval. Similarly, the message processor 108 canimmediately send an activity message if the user has entered a partialtext message into the buffer and then stopped entering data for sometime greater than the first predetermined time interval and subsequentlyenters additional data into the buffer.

The activity message itself is transmitted in a conventional email formusing the multipurpose Internet mail extensions (MIME) format. Theactivity message has the following form:

MIME-Version: 1.0

Content-Type: text/x-msmsgscontrol

TypingUser: <name of sending user>

<blank line>

<blank line>

The text message itself is also transmitted in a conventional email formusing the MIME format. The text message has the following form:

MIME-Version: 1.0

Content-Type: text/plain; charset=UTF-8

To: <name of receiving users>

<blank line>

<message body>

Each recipient receives and processes the activity messages and textmessages. The text messages are processed in a conventional fashion andneed not be described in greater detail herein. The activity messagesare processed to indicate to each recipient that one or moreparticipants in the instant messaging session are actively entering datavia their respective user input devices 102.

FIG. 3 illustrates an instant messaging session between threeparticipants. It should be understood that each participant in theinstant messaging session has a computer platform containing thecomponents illustrated in the FIG. 2. FIG. 3 illustrates three computers20, identified as Computers A-C, which are each coupled to a computernetwork 120, such as the Internet. As those skilled in the art canappreciate, the Computers A-C can be coupled to the computer network 120by a variety of means, such as the modem 45 (see FIG. 1), networkconnections such as an Ethernet connection, or any other conventionalnetwork connection. It is further noted that the Computers A-C need nothave the same type of network connection. For example, the Computer Amay be connected to the computer network 120 via the modem 45 within thecomputer system 20, while the computer C may be coupled to the computernetwork by high-speed network connection, such as an Ethernetconnection.

For purposes of the following discussion, it is assumed that the usersof the Computers A-C are coupled to the computer network 120 and engagedin an instant messaging session. In accordance with the principles ofthe present invention, if one or participant (e.g., the user of computerA) enters text message data using the keyboard 37, the system 100 withinthat computer (e.g., the Computer A) will generate an activity messageand transmit it to the other computers in the instant messaging session(e.g., the Computers B-C). If the user of the Computer C is also typinga message on the keyboard 37, an activity message will be generated bythe system 100 within the Computer C and transmitted to the ComputersA-B.

It should be noted that the Computer C also includes an audio inputdevice 122, such as a microphone, coupled to one of the input/outputdevices 27 (see FIG. 1), such as the sound board 39 or other multimediainterface (not shown). In this example, the user of the Computer C canenter user data for a message using the keyboard 37 or the microphone122. The audio data can be converted into text data by a conventionalvoice recognition software program and transmitted as text data.Alternatively, the message processor 108 can create data packets for theaudio data and transmit audio data instead of text data. In eitherevent, the user entry of data is detected by the user activity monitor104 (see FIG. 2) and the message processor 108 within the Computer Cwill send the activity message to the Computers A-B.

The activity messages received by Computers A-C are processed by themessage processor 108. As soon as an activity message is received, themessage processor 108 generates an activity indicator and displays it onthe display 36. The activity indicator may take the form of a textindicator 124, as illustrated on the display 36 of the Computer A.Alternatively, the display indicator may take the form of a graphic icon126, as illustrated on the display 36 of the Computer C. The activityindicator may also be a combination of graphic icon and text indicator.

The computer receiving the activity message must independently determinewhen another participant is no longer actively entering data via theuser input device 102. Although it is possible for a computer totransmit a status message indicating inactivity, such a status messageis undesirable because it increases the traffic volume on the computernetwork to transmit periodic messages indicating that nothing ishappening. Furthermore, if a status message is not received, it may bedue to the fact that the computer is no longer coupled to the networkand is thus unable to transmit status messages. Therefore, the presentinvention provides a technique in which a recipient computerindependently measures the time interval from the receipt of the lastactivity message and will assume that a user is no longer active if anew activity message is not received within a predetermined timeinterval. Returning again to FIG. 2, the message processor 108 alsoresets one of the timers 106 upon receipt of an activity message. Thetimer 106 is set to measure a second predetermined time interval and canbe reset to measure a new time interval when an activity message isreceived.

Those skilled in the art will appreciate that timer functions may varyfrom one system to another. For example, the Windows® operating systemallows the user to select a time interval and continuously measure theselected time interval until halted by the user. Each time the timeinterval expires, the operating system generates a signal, such as aninterrupt, and restarts the time interval measurement. With a timer ofthis sort, the system 100 simply starts a timer to measure the secondpredetermined time interval. If a new activity message is not receivedbefore the expiration of the second predetermined time interval, themessage processor 108 will delete the activity indicator from thedisplay 36. For example, the timer 106 may measure a six second timeinterval. The message processor 108 will delete the activity indicatorfrom the display 36 at the end of the six second time interval unless anew activity message is received. In the example described above, inactivity message than is generated and transmitted every five seconds(i.e., the first predetermined time interval). So long as the user isactively entering data, an activity message is transmitted every fiveseconds and thus received just before the expiration of the six secondtime interval. Those skilled in the art will appreciate that the system100 is not limited to the time periods presented in the examples above.The five second and six second time intervals measured by the timer 106may be set to other convenient values. Although the first and secondpredetermined time intervals may be set to any values, it is convenientto make the second predetermined time interval longer than the firstpredetermined time interval so that the message processor 108 in thereceiving computer need only generate the activity indicator once forthe display 36 and need only delete the activity indicator once if a newactivity message is not received within the second predetermined timeinterval. This reduces the number of instructions it must be executed bythe message processor 108.

Alternatively, the message sender can define the second predeterminedtime interval by sending timer data with the text message and/or with anactivity message. The system 100 can set the timer 106 based on thereceived timer data thus allowing remote programmability of the timeintervals.

Operation of the system 100 to generate and transmit activity messagesis illustrated in the flowchart of FIGS. 4A and 4B. At a start 150, itis assumed that multiple users wish to engage in an instant messagingsession. In step 152, a communication link is established between theparticipants. As illustrated in FIG. 3, multiple computers are coupledto each other and thereby establish communication link via the computernetwork 120. The Internet is a well-known example of the computernetwork 120. The process of establishing the communication link betweenparticipants in via the computer network 120 is well-known and need notbe described herein.

In decision 154, the system 100 detects the entry of user data via theuser input device 102 (see FIG. 2). If the user has not entered any userdata, the result of decision 154 is NO. In that event, the systemreturns to decision 154 to await the user entry of data. If the user hasentered data via the user input device 102, the result decision 154 isYES and, in step 156 the message processor 108 generates and transmitsan activity message to the other participants in the instant messagingsession. It is not necessary to send an immediate activity message assoon as user activity is detected. Thus, decision 154 and step 156 areoptional.

In the example illustrated in FIG. 3, the message processor 108 in theComputer A will generate an activity message if the user of the ComputerA is typing a message on the keyboard 37. The activity message istransmitted via the computer network 120 to the Computers B-C. Themessage processors 108 in the Computers B-C each process the activitymessage from the Computer A and generate an activity indicator, such asthe text indicator 124 on the display 36 of the Computer B and thegraphic icon 126 on the display of the Computer C.

Following transmission of the activity message, the system 100 startsone of the timers 106 in step 160 to measure the first predeterminedtime interval. In the example described above, the message processor 108in the computer A starts the timer 106 to measure a five second timeinterval. During the first predetermined time interval, the system 100monitors for additional user-entered data. In decision 162, systemdetermines whether the user has entered any additional data. If the userhas entered additional data, the result of decision 162 is YES and, instep 164, the system 100 sets in activity flag to indicate the userentry of additional data.

If the user has not entered additional data, the result decision 162 isNO. If no additional data has been entered, or following the executionof step 164 to set the activity flag, the system 100 moves to decision168, shown in FIG. 4B. In decision 168 the system 100 determines whetherthe first predetermined time interval has elapsed. If the firstpredetermined time interval has not elapsed, the result decision 168 isNO. In that event, the system 100 returns to decision 162 in FIG. 4A totest again for the detection of user-entered data.

If the first predetermined time interval has elapsed, the result ofdecision 168 is YES and the system 100 moves to decision 170 todetermine whether the activity flag has been set. If the activity flaghas not been set, the result of decision 170 is NO. In that event, thesystem 100 will not generate an activity message, but simply returns todecision 154 in FIG. 4A to await the entry of userentered data. Aspreviously discussed, the timer (e.g., the timer 106) on some systemscontinuously measure a predetermined time period (e.g., the firstpredetermined time period) and do not require restarting of the timer.In that event, 20 the system 100 may return to decision 162 in FIG. 4Ato detect user-entered data in the next sequential time interval.

If the activity flag has been set, the result decision 170 is YES thusindicating that user activity has occurred within the firstpredetermined time interval. In that event, the message processor 108(see FIG. 2) generates an activity message in step 172 and transmits theactivity message to all participants in the instant messaging session.

As can be appreciated by those skilled in the art, the system 100 mustkeep track of all participants in the instant messaging session.However, these techniques are known in the art and need not be describedherein. Current technology allows the user to communicate with one ormore other participants in an instant messaging session by placing thename(s) of the participants on a “contact” list. Once the name(s) ofparticipants have been placed on a contact list for the current instantmessaging session, all messages, including text messages and activitymessages generated by the system 100, will be transmitted to allparticipants in the instant messaging session. Obviously, it is notnecessary for the system 100 to transmit an activity message to itselfor to display an activity indicator to show its own user's activities.Thus, in step 172, the message processor 108 generates and sends anactivity message to all other participants in the instant messagingsession. In step 174, the system 100 resets the activity flag and movesto decision 154 in FIG. 4A to await the detection of additionaluser-entered data. Alternatively, the system 100 can return to decision162 in FIG. 4A if the timer continuously measures the firstpredetermined time interval. In this manner, the system 100 monitors theuser input device 102 (see FIG. 2) and automatically sends periodicactivity messages to the other participants in an instant messagingsession.

The operation of the system 100 when receiving activity messages isillustrated in the flowchart of FIG. 5. At a start 200, it is assumedthat multiple users wish to communicate with each other in an instantmessaging session. In step 202, the computer 20 (e.g., the Computer B inFIG. 3) establishes a communication link with the other computers (e.g.,the Computers A-C) participating in the instant messaging session.

In step 204, the system 100 starts one of the timers 106 (see FIG. 2) tomeasure the second predetermined time interval. As previously discussed,the first and second predetermined time intervals may be set to anyvalues. However, as noted above, is convenient to set the secondpredetermined time interval to a value greater than the firstpredetermined time interval. In decision 208, the system determineswhether an activity message has been received from any participant inthe instant messaging session.

If an activity message has been received, the result decision of 208 isYES. In that event, in step 210, the system 100 displays an activityindicator, such as the indicator 124 or the graphic icon 126 on thedisplay 36. In the example described above where the user of theComputer A is typing a message on the keyboard 37, the message processor108 in the Computer A transmits an activity message to the ComputersB-C, which each display an activity indicator on their respectivedisplay 36.

Following display of the activity indicator in step 210, system 100returns to step 204 and restarts the timer to measure the secondpredetermined time interval once again. If the system 100 has notreceived an activity message, the result of decision 208 is NO. In thatevent, the system 100 moves to decision 214 to determine whether thesecond predetermined time interval has elapsed. If the secondpredetermined time interval has not elapsed, the result decision 214 isNO and the system returns to decision 208 to await the receipt of anactivity message. If the second predetermined time interval has elapsed,the result of decision 214 is YES. In that event, the system 100 movesto decision 216 and deletes the activity indicator from the display 36.

The flowchart of FIG. 5 provides an example implementation of thesystem, but is not intended as the only possible implementation. Forexample, the timers may run continuously, as described above. In thisembodiment, the system 100 continuously measures the secondpredetermined time interval. At the end of the time interval, the systemdeletes activity indicators for those individual(s) from whom anactivity message was not received. If an activity message is receivedfrom a new participant, the system 100 can display the activityindicator for the new participants immediately or at the end of thesecond predetermined time interval.

It should be noted that a given computer may receive an activity messagefrom more than one participant in the instant messaging session. Forexample, if the users of the Computers A-B (see FIG. 3) are bothentering data via their respective user input devices 102 (see FIG. 2),both computers will send activity messages to the other participants inthe instant messaging session. In this example, the message processor108 of the Computer A receives an activity message indicating that theuser of the Computer B is actively entering data, the message processor108 of the Computer B receives an activity message indicating that theuser of the Computer A is actively entering data, and the messageprocessor 108 of the Computer C receives activity messages from bothComputers B-C. Because the Computers A-B operate independently, theirrespective message processors 108 may transmit activity messages atdifferent times and, thus, the Computer C does not receive activitymessages from both computers at the same time. The system 100 must havea sufficient number of timers 106 to measure the first predeterminedtime interval for its own user activity and a timer to measure thesecond predetermined time interval for each of the other participants inthe instant messaging session to allow the deletion of activityindicators from participants from whom an activity message has not beenreceived during the previous second predetermined time interval.Alternatively, the system 100 can continuously measure the secondpredetermined time interval, as described above, and alter the activityindicators for all other participants based on whether activity messageswere received from any or all of the participants in the instantmessaging session.

It is to be understood that even though various embodiments andadvantages of the present invention have been set forth in the foregoingdescription, the above disclosure is illustrative only, and changes maybe made in detail, yet remain within the broad principles of theinvention. Therefore, the present invention is to be limited only by theappended claims.

What is claimed is:
 1. A system for activity notification on a computernetwork, the system comprising: a user input device; an activity monitorto detect user activation of the user input device, the activity monitorgenerating a status signal indicative of user activation of the userinput device; a timer to measure a predetermined time interval; amessage processor to generate an activity message if the status signalhas been generated within the predetermined time interval, the activitymessage processor transmitting the activity message to at least onerecipient with whom the user is communicating via the computer network.2. The system of claim 1 wherein the user input device is operable bythe user to enter message data to be transmitted to the least onerecipient, the system further comprising a message transmit inputelement operable by the user to transmit the message data to the atleast one recipient.
 3. The system of claim 2 wherein the messageprocessor ceases transmission of the activity message at the end of thepredetermined time interval if the message transmit input element hasbeen operated by the user to transmit the message data to the at leastone recipient regardless of whether the status signal has been generatedwithin the predetermined time interval.
 4. The system of claim 2,further comprising a buffer to store the message to be transmitted tothe at least one recipient, the message processor immediately generatingand transmitting the activity message when a data is initially stored inthe buffer.
 5. The system of claim 2 wherein the user input device is anaudio input element operable by the user to enter audio data as themessage data to be transmitted to the least one recipient.
 6. The systemof claim 2 wherein the user input device is a keyboard operable by theuser to enter keyboard data as the message data and the activity monitormonitors user operation of the keyboard.
 7. The system of claim 6wherein the message transmit input element is a portion of the keyboard.8. The system of claim 6 wherein the message processor ceasestransmission of the activity message at the end of the predeterminedtime interval if the message transmit input element has been operated bythe user to transmit the message data to the at least one recipientregardless of whether the status signal has been generated within thepredetermined time interval.
 9. A system for activity notification on acomputer network having a transmitting computing device coupled to thecomputer network, the system comprising: a network interface coupled tothe computer network and receiving an activity message from thetransmitting computing device, the activity message being indicative ofuser activity on the transmitting computing device; a timer to measure apredetermined time interval; and a message processor to generate anactivity indicator in response to receipt of the activity message anddeleting the activity indicator at the end of the predetermined timeinterval if a new activity message is not received during thepredetermined time interval.
 10. The system of claim 9, furthercomprising a display for displaying the activity indicator.
 11. Thesystem of claim 9, wherein the activity indicator is a text message. 12.The system of claim 9 the activity indicator is a graphic symbol. 13.The system of claim 9 wherein the computer network comprises a pluralityof transmitting computing devices coupled to the computer network andthe network interface receives an activity message from each of theplurality of transmitting computing devices, the system furthercomprising a plurality of timers to measure a plurality of thepredetermined time intervals, the message processor generating anactivity indicator corresponding to each of the activity messages inresponse to receipt of each activity message and initiating acorresponding timer to measure the predetermined time interval from thearrival of each of the activity messages, the message processor deletingthe activity indicator for each of the plurality of transmittingcomputing devices at the end of the corresponding measured predeterminedtime interval if a new activity message from each respective one of theplurality of transmitting computing devices is not received in thecorresponding measured predetermined time interval.
 14. The system ofclaim 9 wherein the computer network comprises a plurality oftransmitting computing devices coupled to the computer network and thenetwork interface receives an activity message from each of theplurality of transmitting computing devices, the message processgenerating an activity message in response to receipt of each activitymessage and deleting the activity indicator for each of the plurality oftransmitting computing devices at the end of the predetermined timeinterval if a new activity message from each respective one of theplurality of transmitting computing devices is not received within thepredetermined time period.
 15. The system of claim 9, wherein a user ofthe transmitting computing device participates in a conversation with auser who is associated with the system, and wherein the messageprocessor generates or deletes the activity indicator based on whetherthe user is actively engaged in the conversation.
 16. Acomputer-readable media containing computer-executable instructions tocause a computer coupled to a computer network to perform program stepsof: detecting user activation of a user input device; generating astatus signal indicative of user activation of the user input device;measuring a predetermined time interval; generating an activity messageat the end of the predetermined time interval if the status signal hasbeen generated within the predetermined time interval; and transmittingthe activity message to at least one recipient with whom the user iscommunicating via the computer network.
 17. The computer-readable mediaof claim 16 containing further computer-executable instructions forperforming the steps of sensing user operation of the user input deviceto enter message data to be transmitted to the least one recipient andsensing user operation of a message transmit input element to transmitthe message data to the at least one recipient.
 18. Thecomputer-readable media of claim 17 containing furthercomputer-executable instructions for performing the steps of ceasingtransmission of the activity message at the end of the predeterminedtime interval if the message transmit input element has been operated bythe user to transmit the message data to the at least one recipientregardless of whether the status signal has been generated within thepredetermined time interval.
 19. The computer-readable media of claim 17wherein the user input device is a keyboard operable by the user toenter keyboard data as the message data, the computer-readable mediacontaining further computer-executable instructions for performing thesteps sensing operation of the keyboard by the user.
 20. Thecomputer-readable media of claim 17 wherein the user input device is anaudio input element operable by the user to enter audio data as themessage data to be transmitted to the least one recipient, thecomputer-readable media containing further computer-executableinstructions for performing the steps of detecting the audio data andstoring the audio data as the message data.
 21. The computer-readablemedia of claim 17 containing further computer-executable instructionsfor performing the steps of temporarily storing the message data in abuffer to be transmitted to the at least one recipient, and immediatelygenerating and transmitting the activity message when data is initiallystored in the buffer.
 22. A computer-readable media containingcomputer-executable instructions to cause a computer coupled to acomputer network to perform program steps of: receiving an activitymessage from a transmitting computing device coupled to a computernetwork, the activity message being indicative of user activity on thetransmitting computing device; generating an activity indicator inresponse to receipt of the activity message; initiating a timer tomeasure a predetermined time interval; and deleting the activityindicator at the end of the predetermined time interval if a newactivity message is not received within the predetermined time interval.23. The computer-readable media of claim 22 containing furthercomputer-executable instructions for performing the steps of displayingthe activity indicator on a computer display.
 24. The computer-readablemedia of claim 23 containing further computer-executable instructionsfor performing the steps of deleting the activity indicator from thecomputer display at the end of the predetermined time interval if a newactivity message is not received.
 25. The computer-readable medium ofclaim 21, wherein the steps further comprise: determining whether a userof the computer is engaged in a conversation with a user of thetransmitting computing device based on whether the new activity messageis received within the predetermined time interval.
 26. Acomputer-readable media containing computer-executable instructions tocause a computer coupled to a computer network to perform program stepsof: receiving an activity message from each of a plurality oftransmitting computing devices coupled to a computer network, eachactivity message being indicative of user activity on the respectivetransmitting computing device; in response to receipt of each activitymessage, generating an activity indicator corresponding to eachrespective transmitting computing device; initiating a timer to measurea predetermined time interval; and deleting the activity indicatorcorresponding to a particular transmitting computing device at the endof the predetermined time interval if a new activity message from theparticular transmitting computing device is not received during thepredetermined time interval.
 27. The computer-readable media of claim 26containing further computer-executable instructions for performing thesteps of displaying the activity indicator corresponding to eachrespective transmitting computing device.
 28. The computer-readablemedia of claim 27 containing further computer-executable instructionsfor performing the steps of deleting the activity indicatorcorresponding to a particular transmitting computing device from thecomputer display at the end of the predetermined time interval if a newactivity message from the particular transmitting computing device isnot received.
 29. A computer-readable media containingcomputer-executable instructions to cause a computer coupled to acomputer network to perform program steps of: detecting user activationof a user input device; generating a status signal indicative of useractivation of the user input device; measuring a first predeterminedtime interval; generating an outgoing activity message at the end of thefirst predetermined time interval if the status signal has beengenerated within the first predetermined time interval; transmitting theoutgoing activity message to at least one participant computing devicewith whom the user is communicating via the computer network; receivingan incoming activity message from a participant computing device coupledto a computer network, the activity message being indicative of useractivity on the participant computing device; generating an activityindicator in response to receipt of the incoming activity message;initiating a timer to measure a second predetermined time interval; anddeleting the activity indicator at the end of the second predeterminedtime interval if an incoming activity message is not received during thesecond predetermined time interval.
 30. The computer-readable media ofclaim 29 containing further computer-executable instructions forperforming the steps of ceasing transmission of the outgoing activitymessage at the end of the first predetermined time interval if a messagetransmit input element has been operated by the user to transmit themessage data to the at least one participant regardless of whether thestatus signal has been generated within the first predetermined timeinterval.
 31. The computer-readable media of claim 29 containing furthercomputer-executable instructions for performing the steps of temporarilystoring the message data in a buffer to be transmitted to the at leastone participant, and immediately generating and transmitting theoutgoing activity message when data is initially stored in the buffer.32. The computer-readable media of claim 29 containing furthercomputer-executable instructions for performing the steps of displayingthe activity indicator on a computer display.
 33. The computer-readablemedia of claim 32 containing further computer-executable instructionsfor performing the steps of deleting the activity indicator from thecomputer display at the end of the predetermined time interval if a newincoming activity message is not received.
 34. A method for activitynotification in a computer coupled to a computer network, the methodcomprising: detecting user activation of a user input device; generatinga status signal indicative of user activation of the user input device;measuring a predetermined time interval; generating an activity messageat the end of the predetermined time interval if the status signal hasbeen generated within the predetermined time interval; and transmittingthe activity message to at least one recipient with whom the user iscommunicating via the computer network.
 35. The method of claim 34,further comprising sensing user operation of the user input device toenter message data to be transmitted to the least one recipient andsensing user operation of a message transmit input element to transmitthe message data to the at least one recipient.
 36. The method of claim34, further comprising ceasing transmission of the activity message atthe end of the predetermined time interval if the message transmit inputelement has been operated by the user to transmit the message data tothe at least one recipient regardless of whether the status signal hasbeen generated within the predetermined time interval.
 37. The method ofclaim 34, further comprising temporarily storing the message data in abuffer to be transmitted to the at least one recipient, and immediatelygenerating and transmitting the activity message when data is initiallystored in the buffer.
 38. A method for activity notification in acomputer coupled to a computer network, the method comprising: receivingan activity message from a transmitting computing device coupled to acomputer network, the activity message being indicative of user activityon the transmitting computing device; generating an activity indicatorin response to receipt of the activity message; initiating a timer tomeasure a predetermined time interval; and deleting the activityindicator at the end of the predetermined time interval if an activitymessage is not received within a predetermined time.
 39. The method ofclaim 38, further comprising displaying the activity indicator on acomputer display.
 40. The method of claim 39, further comprisingdeleting the activity indicator from the computer display at the end ofthe predetermined time interval if a new activity message is notreceived within the predetermined time interval.
 41. The method of claim38, further comprising: determining whether a user of the computer isengaged in a conversation with a user of the transmitting computingdevice based on whether the new activity message is received within thepredetermined time interval.
 42. A method for activity notification in acomputer coupled to a computer network, the method comprising: detectinguser activation of a user input device; generating a status signalindicative of user activation of the user input device; measuring afirst predetermined time interval; generating an outgoing activitymessage at the end of the first predetermined time interval if thestatus signal has been generated within the first predetermined timeinterval; transmitting the outgoing activity message to at least oneparticipant computing device with whom the user is communicating via thecomputer network; receiving an incoming activity message from aparticipant computing device coupled to a computer network, the incomingactivity message being indicative of user activity on the participantcomputing device; generating an activity indicator in response toreceipt of the incoming activity message; initiating a timer to measurea second predetermined time interval; and deleting the activityindicator at the end of the second predetermined time interval if anincoming activity message is not received during the secondpredetermined time interval.
 43. The method of claim 42, furthercomprising ceasing transmission of the outgoing activity message at theend of the first predetermined time interval if a message transmit inputelement has been operated by the user to transmit the message data tothe at least one participant regardless of whether the status signal hasbeen generated within the first predetermined time interval.
 44. Themethod of claim 42, further comprising temporarily storing the messagedata in a buffer to be transmitted to the at least one participant, andimmediately generating and transmitting the outgoing activity messagewhen data is initially stored in the buffer.
 45. The method of claim 42,further comprising displaying the activity indicator on a computerdisplay.
 46. The method of claim 45, further comprising deleting theactivity indicator from the computer display at the end of thepredetermined time interval if a new incoming activity message is notreceived.
 47. A system for notifying one or more participants of useractivity, the system being adapted to operate on a device that comprisesor is associated with a user-operable input mechanism, the device beingcommunicatively coupleable to the one or more participants, the systemcomprising: a timer which measures a time interval having apredetermined duration; and a notifying module which receives anindication that the user mechanism is being operated, and which sends anactivity message to the one or more participants conditioned upon theinput mechanism being operated within said time interval.
 48. The systemof claim 47, wherein the timer measures successive time intervals havingsaid predetermined duration, and wherein said notifying module sends anactivity message for each of the successive time intervals in which theuser mechanism is operated at least once.
 49. The system of claim 47,wherein the user mechanism comprises at least one of: keyboard, oraudio-capture device.
 50. A system for determining whether a remote useris actively entering input, the system being adapted to operate on adevice that is communicatively coupleable to the remote user, the systemcomprising: a timer which measures a time interval having apredetermined duration; and a determination module which receives anactivity message from the remote user, which determines whether saidactivity message has been received within said time interval, and whichgenerates output based on the determination as to whether said activitymessage has been received within said time interval.
 51. The system ofclaim 50, wherein the timer measures successive time intervals havingsaid predetermined duration, and wherein said determining modulegenerates output based on whether said activity message has beenreceived within each of said successive time intervals.
 52. The systemof claim 50, wherein said output comprises at least one of: textmessage, or graphic icon.
 53. The system of claim 52, wherein thegeneration of output comprises: displaying said text message or graphicicon if said activity message has been received within said timeinterval; and not displaying, or ceasing to display, said text messageor graphic icon if said activity message has not been received withinsaid time interval.
 54. The system of claim 50, wherein the remote userparticipates in a conversation with a local user of the device, andwherein the determination module determines whether the remote user isactively engaged in the conversation with the local user based onwhether the activity message is received within said time interval.